<!doctype html>
<html lang="zh-cn">
<head>

    <meta charset="utf-8">
    <meta name="generator" content="Hugo 0.57.2" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Mysql存储过程 | The Sky of OtsWang</title>
    <meta property="og:title" content="Mysql存储过程 - The Sky of OtsWang">
    <meta property="og:type" content="article">
        
    <meta property="article:published_time" content="2018-11-20T18:48:00&#43;08:00">
        
        
    <meta property="article:modified_time" content="2018-11-20T18:48:00&#43;08:00">
        
    <meta name="Keywords" content="golang,go语言,otswang,java,博客,python">
    <meta name="description" content="项目中需要压测，学习一下存储过程，批量创建测试数据">
        
    <meta name="author" content="OtsWang">
    <meta property="og:url" content="https://otswang.gitee.io/hugo/post/other/mysql_stored/">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">

    <link rel="stylesheet" href="/hugo/css/normalize.css">
    
        <link rel="stylesheet" href="/hugo/css/prism.css">
    
    <link rel="stylesheet" href="/hugo/css/style.css">
    <script type="text/javascript" src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

    


    
    
</head>

<body>
<header id="header" class="clearfix">
    <div class="container">
        <div class="col-group">
            <div class="site-name ">
                
                    <a id="logo" href="https://otswang.gitee.io/hugo/">
                        The Sky of OtsWang
                    </a>
                
                <p class="description">擅长写HelloWorld的小小码农</p>
            </div>
            <div>
                <nav id="nav-menu" class="clearfix">
                    
                    
                    <a  href="https://otswang.gitee.io/hugo/" title="Home">Home</a>
                    
                    <a  href="https://otswang.gitee.io/hugo/tags/" title="Tags">Tags</a>
                    
                    <a  href="https://otswang.gitee.io/hugo/categories/" title="Categories">Categories</a>
                    
                    <a  href="https://otswang.gitee.io/hugo/archives/" title="Archives">Archives</a>
                    
                    <a  href="https://otswang.gitee.io/hugo/about/" title="About">About</a>
                    
                </nav>
            </div>
        </div>
    </div>
</header>


<div id="body">
    <div class="container">
        <div class="col-group">

            <div class="col-8" id="main">
                <div class="res-cons">
                    <article class="post">
                        <header>
                            <h1 class="post-title">Mysql存储过程</h1>
                        </header>
                        <date class="post-meta meta-date">
                            2018年11月20日
                        </date>
                        
                        <div class="post-meta">
                            <span>|</span>
                            
                                <span class="meta-category"><a href="https://otswang.gitee.io/hugo/categories/other">Other</a></span>
                            
                        </div>
                        
                        
                        
                        <div class="post-content">
                            <p>项目中需要压测，学习一下存储过程，批量创建测试数据</p>

<h1 id="概述">概述</h1>

<p>From 菜鸟学院</p>

<h2 id="事务控制语句-题外话">事务控制语句(题外话)</h2>

<ul>
<li>begin or start transaction; 显式地开启一个事务；</li>
<li>commit 提交事务</li>
<li>rollback  回滚结束的事务</li>
<li>savepoint identifier ： 创建一个保存点</li>
<li>release savepoint identifier : 删除一个保存点</li>
<li>roollback to identifier ： 回滚到标记点</li>
<li>set transaction 设置事务的隔离级别
<br /></li>
</ul>

<h2 id="概述-1">概述</h2>

<p>mysql 从5.0开始支持存储过程，是一种在数据库中存储复杂程序，以便外部程序调用的一种数据库对象。</p>

<h2 id="创建与调用">创建与调用</h2>

<p>存储过程就是一段代码，用来完成一个特定的功能，其保存在数据字典中。</p>

<h2 id="基本语法">基本语法</h2>

<p>语句结束符，自定义</p>

<pre><code class="language-sql">delimiter $$
// or
delimiter //
</code></pre>

<p>声明存储过程</p>

<pre><code class="language-sql">create procedure demo_in_paramter(IN p_in int)
</code></pre>

<p>存储过程起始和终止符号</p>

<pre><code class="language-sql">begin .... end
</code></pre>

<p>变量赋值</p>

<pre><code class="language-sql">set @p_in=1
</code></pre>

<p>变量定义</p>

<pre><code class="language-sql">declare l_int int unsigned default 4000;
</code></pre>

<p>创建mysql 存储过程，存储函数</p>

<pre><code class="language-sql">create procedure 存储过程名(参数)
</code></pre>

<p>存储过程体</p>

<pre><code class="language-sql">create function 存储函数名(参数)
</code></pre>

<p>标签</p>

<pre><code class="language-sql">[label_name:] BEGIN
    [statement_list]
END [label_name]    
</code></pre>

<p>参数<br />
分为<code>in, out, inout</code>三种类型。</p>

<pre><code class="language-sql">delimiter $$
create procedure in_param(in p_in int)
begin
    select p_in;
    set p_in=2;
    select p_in;
end$$
</code></pre>

<p>变量</p>

<ul>
<li>变量定义放在存储过程体的开始, <code>declare p_name int default 30000;</code></li>
<li>变量赋值 <code>set p_name = xxx;</code></li>
<li>用户变量</li>
</ul>

<p>注释<br />
单行注释： <code>--</code>; C++ 形式的注释： <code>/**/</code></p>

<p>调用</p>

<pre><code class="language-sql">call p_name (xxx);
</code></pre>

<h2 id="控制语句">控制语句</h2>

<ul>
<li><p>if then else 语句</p>

<pre><code class="language-sql">if a = 0 then
-- do some thing
else
-- do another
end if;
</code></pre></li>

<li><p>case 语句</p>

<pre><code class="language-sql">case v
when a then
-- do;
when b then
-- do;
else
-- do;
end case;
</code></pre></li>

<li><p>while 语句</p>

<pre><code class="language-sql">while a &lt; 6 do
-- do;
end while;
</code></pre></li>

<li><p>repeat
在执行操作后检查结果，而while在执行前检查</p>

<pre><code class="language-sql">repeat
-- do;
until a&lt;10
end repeat;
</code></pre></li>

<li><p>loop 语句和 labels标号
此处不进行学习</p></li>
</ul>

<h2 id="常用函数">常用函数</h2>

<pre><code class="language-sql">mysql&gt; select bin(4);
+--------+
| bin(4) |
+--------+
| 100    |
+--------+

mysql&gt; select oct(16);
+---------+
| oct(16) |
+---------+
| 20      |
+---------+

mysql&gt; select hex(15);
+---------+
| hex(15) |
+---------+
| F       |
+---------+

mysql&gt; select concat('ots', 'wang', 'love', 'smj');
+--------------------------------------+
| concat('ots', 'wang', 'love', 'smj') |
+--------------------------------------+
| otswanglovesmj                       |
+--------------------------------------+

mysql&gt; select length('otswang');
+-------------------+
| length('otswang') |
+-------------------+
|                 7 |
+-------------------+

mysql&gt; select locate('ots' , 'otswang', 0);
+------------------------------+
| locate('ots' , 'otswang', 0) |
+------------------------------+
|                            0 |
+------------------------------+

mysql&gt; select instr('otswang', 'in');
+------------------------+
| instr('otswang', 'in') |
+------------------------+
|                      0 |
+------------------------+

mysql&gt; select lpad('ots', 5, '*');
+---------------------+
| lpad('ots', 5, '*') |
+---------------------+
| **ots               |
+---------------------+

mysql&gt; select right('otswnag', 4);
+---------------------+
| right('otswnag', 4) |
+---------------------+
| wnag                |
+---------------------+

mysql&gt; select substring('otswang', 2,3);
+---------------------------+
| substring('otswang', 2,3) |
+---------------------------+
| tsw                       |
+---------------------------+

mysql&gt; select substring('www.otswang.win', '.', 2);
+--------------------------------------+
| substring('www.otswang.win', '.', 2) |
+--------------------------------------+
|                                      |
+--------------------------------------+

mysql&gt; select substring('www.otswang.win', '.', 1);
+--------------------------------------+
| substring('www.otswang.win', '.', 1) |
+--------------------------------------+
|                                      |
+--------------------------------------+

mysql&gt; select substring_index('www.otswang.win', '.', 2);
+--------------------------------------------+
| substring_index('www.otswang.win', '.', 2) |
+--------------------------------------------+
| www.otswang                                |
+--------------------------------------------+

mysql&gt; select ltrim('  ots  ');
+------------------+
| ltrim('  ots  ') |
+------------------+
| ots              |
+------------------+

mysql&gt; select rtrim('  ots  ');
+------------------+
| rtrim('  ots  ') |
+------------------+
|   ots            |
+------------------+

mysql&gt; select trim('  ots  ');
+-----------------+
| trim('  ots  ') |
+-----------------+
| ots             |
+-----------------+

mysql&gt; select soundex('hello');
+------------------+
| soundex('hello') |
+------------------+
| H400             |
+------------------+

mysql&gt; select soundex('hello');
+------------------+
| soundex('hello') |
+------------------+
| H400             |
+------------------+

mysql&gt; select space(5);
+----------+
| space(5) |
+----------+
|          |
+----------+

mysql&gt; select replace('otswang', 'ots', 'Ots');
+----------------------------------+
| replace('otswang', 'ots', 'Ots') |
+----------------------------------+
| Otswang                          |
+----------------------------------+

mysql&gt; select repeat('ots', 3);
+------------------+
| repeat('ots', 3) |
+------------------+
| otsotsots        |
+------------------+

mysql&gt; select reverse('ots');
+----------------+
| reverse('ots') |
+----------------+
| sto            |
+----------------+

mysql&gt; select insert('otswang', 2,3, 'aaa');
+-------------------------------+
| insert('otswang', 2,3, 'aaa') |
+-------------------------------+
| oaaaang                       |
+-------------------------------+

mysql&gt; select elt(2, 'ots', 'wang', 'love', 'smj');
+--------------------------------------+
| elt(2, 'ots', 'wang', 'love', 'smj') |
+--------------------------------------+
| wang                                 |
+--------------------------------------+

mysql&gt; select field('ots', 'wang', 'otswang', 'ots');
+----------------------------------------+
| field('ots', 'wang', 'otswang', 'ots') |
+----------------------------------------+
|                                      3 |
+----------------------------------------+

mysql&gt; select find_in_set('ots', 'o,ot,ots,otswang');
+----------------------------------------+
| find_in_set('ots', 'o,ot,ots,otswang') |
+----------------------------------------+
|                                      3 |
+----------------------------------------+

mysql&gt; select lcase('Ots'), lower('Ots');
+--------------+--------------+
| lcase('Ots') | lower('Ots') |
+--------------+--------------+
| ots          | ots          |
+--------------+--------------+

mysql&gt; select ucase('Ots'), upper('Ots');
+--------------+--------------+
| ucase('Ots') | upper('Ots') |
+--------------+--------------+
| OTS          | OTS          |
+--------------+--------------+

</code></pre>

<ul>
<li><p>数学</p>

<pre><code class="language-sql">mysql&gt; select abs(-2);
+---------+
| abs(-2) |
+---------+
|       2 |
+---------+

mysql&gt; select mod(5,2);
+----------+
| mod(5,2) |
+----------+
|        1 |
+----------+

mysql&gt; select floor(3.5);
+------------+
| floor(3.5) |
+------------+
|          3 |
+------------+

mysql&gt; select ceiling(3.4);
+--------------+
| ceiling(3.4) |
+--------------+
|            4 |
+--------------+

mysql&gt; select pi();
+----------+
| pi()     |
+----------+
| 3.141593 |
+----------+

mysql&gt; select rand(), rand(10);
+--------------------+--------------------+
| rand()             | rand(10)           |
+--------------------+--------------------+
| 0.6768274695396679 | 0.6570515219653505 |
+--------------------+--------------------+

mysql&gt; select round(5.555, 1), round(5.555) , round(5.4444), truncate(5.555, 1);
+-----------------+--------------+---------------+--------------------+
| round(5.555, 1) | round(5.555) | round(5.4444) | truncate(5.555, 1) |
+-----------------+--------------+---------------+--------------------+
|             5.6 |            6 |             5 |                5.5 |
+-----------------+--------------+---------------+--------------------+

mysql&gt; select least(1,2,3,7,3,4,6), greatest(1,2,3,7,3,4,6);
+----------------------+-------------------------+
| least(1,2,3,7,3,4,6) | greatest(1,2,3,7,3,4,6) |
+----------------------+-------------------------+
|                    1 |                       7 |
+----------------------+-------------------------+

</code></pre></li>

<li><p>时间</p>

<pre><code class="language-sql">mysql&gt; select dayofweek('2018-11-22');
+-------------------------+
| dayofweek('2018-11-22') |
+-------------------------+
|                       5 |
+-------------------------+

mysql&gt; select dayofmonth('2018-11-22');
+--------------------------+
| dayofmonth('2018-11-22') |
+--------------------------+
|                       22 |
+--------------------------+

mysql&gt; select month('2018-11-22');
+---------------------+
| month('2018-11-22') |
+---------------------+
|                  11 |
+---------------------+

mysql&gt; select dayname('2018-11-22');
+-----------------------+
| dayname('2018-11-22') |
+-----------------------+
| Thursday              |
+-----------------------+

mysql&gt; select monthname('2018-11-22');
+-------------------------+
| monthname('2018-11-22') |
+-------------------------+
| November                |
+-------------------------+

mysql&gt; select week('2018-11-22');
+--------------------+
| week('2018-11-22') |
+--------------------+
|                 46 |
+--------------------+

mysql&gt; select year('2018-11-22');
+--------------------+
| year('2018-11-22') |
+--------------------+
|               2018 |
+--------------------+

mysql&gt; select hour('10:24:00');
+------------------+
| hour('10:24:00') |
+------------------+
|               10 |
+------------------+

mysql&gt; select minute('10:24:00');
+--------------------+
| minute('10:24:00') |
+--------------------+
|                 24 |
+--------------------+

mysql&gt; select second('10:24:00');
+--------------------+
| second('10:24:00') |
+--------------------+
|                  0 |
+--------------------+

mysql&gt; select period_add(201811, 2);
+-----------------------+
| period_add(201811, 2) |
+-----------------------+
|                201901 |
+-----------------------+

mysql&gt; select period_diff(201811, 201812);
+-----------------------------+
| period_diff(201811, 201812) |
+-----------------------------+
|                          -1 |
+-----------------------------+

mysql&gt; select adddate('2018-11-22', '1'), subdate('2018-11-22', '1');
+----------------------------+----------------------------+
| adddate('2018-11-22', '1') | subdate('2018-11-22', '1') |
+----------------------------+----------------------------+
| 2018-11-23                 | 2018-11-21                 |
+----------------------------+----------------------------+

mysql&gt; select date_format('2018-11-22 10:24:00', '%h %k %i %r %t %s %w');
+------------------------------------------------------------+
| date_format('2018-11-22 10:24:00', '%h %k %i %r %t %s %w') |
+------------------------------------------------------------+
| 10 10 24 10:24:00 AM t 00 4                                |
+------------------------------------------------------------+

mysql&gt; select current_date();
+----------------+
| current_date() |
+----------------+
| 2018-11-22     |
+----------------+

mysql&gt; select current_time();
+----------------+
| current_time() |
+----------------+
| 16:29:32       |
+----------------+

mysql&gt; select now();
+---------------------+
| now()               |
+---------------------+
| 2018-11-22 16:29:40 |
+---------------------+

mysql&gt; select unix_timestamp();
+------------------+
| unix_timestamp() |
+------------------+
|       1542875400 |
+------------------+

mysql&gt; select from_unixtime(1542875400), from_unixtime(1542875400, '%y %d %M');
+---------------------------+---------------------------------------+
| from_unixtime(1542875400) | from_unixtime(1542875400, '%y %d %M') |
+---------------------------+---------------------------------------+
| 2018-11-22 16:30:00       | 18 22 November                        |
+---------------------------+---------------------------------------+

mysql&gt; select sec_to_time(3600), time_to_sec('1:00:01');
+-------------------+------------------------+
| sec_to_time(3600) | time_to_sec('1:00:01') |
+-------------------+------------------------+
| 01:00:00          |                   3601 |
+-------------------+------------------------+

</code></pre></li>
</ul>
                        </div>

                        


                        


                        <div class="post-meta meta-tags">
                            
                            <ul class="clearfix">
                                
                                <li><a href="https://otswang.gitee.io/hugo/tags/mysql">MySql</a></li>
                                
                            </ul>
                            
                        </div>
                    </article>
                    
    

    
    
                </div>
            </div>
            <div id="secondary">

    <section class="widget">
        <form id="search" action="//www.google.com/search" method="get" accept-charset="utf-8" target="_blank" _lpchecked="1">
      
      <input type="text" name="q" maxlength="20" placeholder="Search">
      <input type="hidden" name="sitesearch" value="https://otswang.gitee.io/hugo/">
      <button type="submit" class="submit icon-search"></button>
</form>
    </section>

    

    <section class="widget">
        <h3 class="widget-title">最近文章</h3>
<ul class="widget-list">
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/middle_tools/kafka/" title="Kafka">Kafka</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/middle_tools/zk_starter/" title="Zookeeper Starter">Zookeeper Starter</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/java/javafx_starter/" title="Java Fx 入门学习">Java Fx 入门学习</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/other/codec/" title="常用加密/签名算法">常用加密/签名算法</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/other/docker/" title="Docker学习">Docker学习</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/webapp/react_starter/" title="React 从入门到入门">React 从入门到入门</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/lang/csharpe_starter/" title="C#语言从入门到入门">C#语言从入门到入门</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/java/java8time/" title="Java checklist">Java checklist</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/other/keyboard/" title="快捷键记录">快捷键记录</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/post/other/vim/" title="vim 使用记录">vim 使用记录</a>
    </li>
    
</ul>
    </section>

    

    <section class="widget">
        <h3 class="widget-title">分类</h3>
<ul class="widget-list">
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/algorithm/">algorithm(4)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/design/">design(7)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/doc/">doc(2)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/go/">go(3)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/java/">java(7)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/java-java8inaction/">java-java8inaction(11)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/java-juc/">java-juc(3)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/java-jvm/">java-jvm(2)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/java-spring/">java-spring(2)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/java-thinkinginjava/">java-thinkinginjava(11)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/middletools/">middletools(9)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/other/">other(24)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/qt/">qt(2)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/smallquickappweb/">smallquickappweb(4)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/webapp/">webapp(1)</a>
    </li>
    
    <li>
        <a href="https://otswang.gitee.io/hugo/categories/%E5%B0%8F%E4%BC%97%E8%AF%AD%E8%A8%80%E4%B8%80%E7%9E%A5/">小众语言一瞥(4)</a>
    </li>
    
</ul>
    </section>

    <section class="widget">
        <h3 class="widget-title">标签</h3>
<div class="tagcloud">
    
    <a href="https://otswang.gitee.io/hugo/tags/c/">c#</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/checklist/">checklist</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/codec/">codec</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/docker/">docker</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/elk/">elk</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/emmet/">emmet</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/file/">file</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/freemarker/">freemarker</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/git/">git</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/go/">go</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/http/">http</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/interview/">interview</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/java/">java</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/javascript/">javascript</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/juc/">juc</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/jvm/">jvm</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/keyboard/">keyboard</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/linux/">linux</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/lua/">lua</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/manjaro/">manjaro</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/map/">map</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/markdown/">markdown</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/mq/">mq</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/mybatis/">mybatis</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/mycat/">mycat</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/mysql/">mysql</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/nginx/">nginx</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/qt/">qt</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/react/">react</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/redis/">redis</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/rust/">rust</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/spring/">spring</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/springboot/">springboot</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/stream/">stream</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/tcp/">tcp</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/thymeleaf/">thymeleaf</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/tree/">tree</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/uml/">uml</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/vim/">vim</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/vlang/">vlang</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/vue/">vue</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/zookeeper/">zookeeper</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/">位运算</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E5%8D%8F%E8%AE%AE/">协议</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/">多线程</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E5%B9%B6%E5%8F%91%E9%9B%86%E5%90%88/">并发集合</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/">微信小程序</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E5%BF%AB%E5%BA%94%E7%94%A8/">快应用</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E6%97%B6%E9%97%B4%E7%B1%BB/">时间类</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E/">模板引擎</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E7%AE%97%E6%B3%95/">算法</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E7%BC%96%E7%A8%8B/">编程</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E7%BC%96%E7%A8%8B%E8%A7%84%E8%8C%83/">编程规范</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E8%AE%BE%E8%AE%A1/">设计</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/">设计模式</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E9%99%90%E6%B5%81/">限流</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/">面向对象</a>
    
    <a href="https://otswang.gitee.io/hugo/tags/%E9%9D%A2%E8%AF%95/">面试</a>
    
</div>
    </section>

    

    <section class="widget">
        <h3 class="widget-title">其它</h3>
        <ul class="widget-list">
            <li><a href="https://otswang.gitee.io/hugo/index.xml">文章 RSS</a></li>
        </ul>
    </section>

    

</div>
        </div>
    </div>
</div>
<footer id="footer">
    <div class="container">
        &copy; 2020 <a href="https://otswang.gitee.io/hugo/">The Sky of OtsWang By OtsWang</a>.
        Powered by <a rel="nofollow noreferer noopener" href="https://gohugo.io" target="_blank">Hugo</a>.
        <a href="https://www.flysnow.org/" target="_blank">Theme</a> based on <a href="https://github.com/Dudiao137/maupassant-hugo" target="_blank">maupassant-ots</a>.
        
    </div>
</footer>


    <script type="text/javascript">
    
    (function(){
        $("pre code").parent().addClass("line-numbers")
    }())

    window.MathJax = {
        tex2jax: {
            inlineMath: [ ['$','$'] ],
            processEscapes: true
        }
    };
    </script>
    <script type="text/javascript" src="/hugo/js/prism.js" async="true"></script>
    <script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async></script>

<a id="rocket" href="#top"></a>
<script type="text/javascript" src="/hugo/js/totop.js?v=0.0.0" async=""></script>







 
 <script src="https://mermaidjs.github.io/scripts/mermaid.min.js"></script>
 <script>
       mermaid.initialize({ startOnLoad: true });
 </script>
</body>
</html>
